package one.stand.service;

import one.stand.model.ResultModel;
import one.stand.request.*;
import one.stand.response.BusinessCardResponse;
import org.springframework.scheduling.annotation.Async;

import java.util.List;

/**
 * @author Administrator
 */
public interface BusinessCardService {

    /**
     * 创建名片
     */
    ResultModel<Boolean> createCard(BusinessCardRequest request);

    /**
     * 判断是否有名片或者公司
     */
    ResultModel<Boolean> isCreateCompany(TokenRequest request);

    /**
     * 修改名片
     *
     * @param request
     * @return
     */
    ResultModel<Boolean> updateCard(BusinessCardRequest request);


    /**
     * 查看名片夹记录
     * @param request
     * @return
     */
    ResultModel<List<BusinessCardResponse>> seeDetail(BusinessCardRequest request);


    /**
     * 名片详情
     * @param request
     * @return
     */
    ResultModel<BusinessCardResponse> cardDetails(BusinessCardRequest request);
    ResultModel<BusinessCardResponse> cardDetailstTst(BusinessCardRequest request);
    @Async("asyncServiceExecutor")
    void poster(BusinessCardRequest request);
    /**
     * 置顶操作
     * @param request
     * @return
     */
    ResultModel isTop(SeeRecordRequest request);

    /**
     * 查询用户自己的名片
     * @param request
     * @return
     */
    ResultModel getUserCard(BusinessCardRequest request);

    /**
     * 删除浏览记录
     */
    ResultModel delSeeCard(SeeRecordRequest request);

    /**
     * 点赞操作
     */
    ResultModel doThumbs(SeeRecordRequest request);

    /**
     * 得到名片二维码
     */
    ResultModel getWxTwoCode(BusinessCardRequest request);

    /**
     * 添加通话记录
     */
    ResultModel addCallsRecord(CallsPhoneRecordRequest request);

    /**
     * 根据用户ID查询用户信息（批量操作）
     */
    ResultModel<List<BusinessCardResponse>> getUserInfo(BusinessCardRequest request);


    /**
     * 切换名片
     * @param request
     * @return
     */
    ResultModel<Boolean> switchCard(BusinessCardRequest request);
}

